package ooday04;

public class AnonInnerClassDemo {
    public static void main(String[] args) {
        //1)创建了Inter的一个派生类，但没有名字(只能创建一个)  等价于:
         // class Aoo implements Inter{ } 有名字：Aoo

        //2)为该派生类创建了一个对象，名为o1，向上造型为Inter类型  等价于：
        //Inter o3 = new Aoo();

        //-------new Inter(){}; 实在创建Inter(前面的Inter)的派生类的对象
        //3）大括号中的为派生类的类体
        Inter o1 = new Inter(){};
 //       |             |
 //      父类     //  （子类） new Inter(){} 是new的前面（Inter o1）Inter的子类对象



        //1）创建了Inter的一个派生类，但没有名字
        //2）为该派生类创建了一个对象，名为o2，向上造型为Inter类型
        //3）大括号中的为派生类的类体
        Inter o2 = new Inter(){};

        //1)创建了InterInter的一个派生类，但没有名字
        //2）为该派生类创建了一个对象，名为o3，向上造型为InterInter类型
        //3）大括号中的为派生类的类体
        InterInter o3 = new InterInter() {
            public void show() {
                System.out.println("showshow");
            }
        };
        o3.show( );//调用show

    }
}

interface InterInter{ //接口中有抽象方法；重写
    void show();
}

interface Inter{ //接口中没有抽象方法；不用重写
}
